//variables globales
var detalle = new Array();
var suma =0;
// fin variables globales

$(document).ready(function() {
	$("input,select").keyupEnter2tab();
	
	$("#distribucionVoucherForm").validate();
	// tooltips
	// fin tooltips

	// botones
	Utiles_Botones.creaBotonGuardarDatos("btn_pedido",enviaDistribucion);
	Utiles_Botones.creaBotonLimpiar("btn_pedido_limpiar",limpiaFormulario);
	// fin botones

	// eventos change
	$("#cmb_zona").change(llenarComboLocalidad);
	$("#cmb_bancos").change(llenarComboCuenta);
	// fin eventos change

	// calendario
	$('input.fecha_pedido').datepicker();
	// fin calendario
	
	$.mask.masks = $.extend($.mask.masks,{
		'decimales_2'   : { mask : '99.99999999999', type : 'reverse', defaultValue: '000' }
		});
	 $('input:text').setMask();
	 
	
	// creacion de la tabla
	jQuery("#tabla_detalle_distribucion").jqGrid({ 
		url:'',// url para obtener data
		mtype: 'GET',// metodo de solicitud
		datatype: "json",// formato de datos que representa la data
		colNames:['correlativo','id_zona','id_localidad,','ZONA','LOCALIDAD','IMPORTE'],
		colModel:[ 
		          {name:'correlativo',index:'correlativo',hidden : true},
		          	{name:'id_zona',index:'id_zona',hidden : true},		  
					{name:'id_localidad',index:'id_localidad',hidden : true},		  		         		          
		           {name:'nom_zona',index:'nom_zona',width:90},
		           {name:'nom_localidad',index:'nom_localidad',width:350},
		           {name:'importe',index:'importe', width:90,sorttype:'number',formatter:'number', formatoptions: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00' }, align:"right",summaryType:'sum'}		           
		          ], 
		rowNum:20,
		loadComplete: function () {
			data= $('#tabla_detalle_distribucion').jqGrid('getGridParam','data');
			suma =0;
			$.each(data, function(i) {				
				suma+=parseFloat(this.importe);
				if(this._id_ == undefined)
					 this._id_=(i+1);
				jQuery("#tabla_detalle_distribucion").jqGrid('setRowData',this._id_,{correlativo:(i+1)});
			});
			suma = redondear(suma,2);
			jQuery("#tabla_detalle_distribucion").jqGrid('setGridParam',{data:data}).trigger("reloadGrid");
			$(this).jqGrid('footerData','set', {nom_localidad:"TOTAL ====>",importe:suma});
		},
		rowList:[20,40],
		pager: '#pager_distribucion',
		viewrecords: true,
		// autowidth: true,
		width:650,
		height:220,
		rownumbers: true,
		scrollOffset: 0,
		// sortname: 'monto_total',sort fijo
		// sortorder: "desc",sort fijo
		jsonReader: { 
			repeatitems : false
			  },
		emptyrecords: "No hay registros",
		loadonce:true,
		footerrow : true, userDataOnFooter : true// altRows:true,
		}); 
	// fin de la tabla

	// addons de la tabla
	jQuery("#tabla_detalle_distribucion").jqGrid('navGrid', '#pager_distribucion', {
		edit : false,
		add : false,
		del : false
	});
	jQuery("#tabla_detalle_distribucion").navButtonAdd('#pager_distribucion', {
		caption : "Agregar",
		buttonicon : "ui-icon-plus",
		onClickButton : showDetalleLiquidacion,
		position : "last",
		title : "",
		cursor : "pointer"
	});
	jQuery("#tabla_detalle_distribucion").navButtonAdd('#pager_distribucion', {
		caption : "Eliminar",
		buttonicon : "ui-icon-trash",
		onClickButton : eliminaItem,
		position : "last",
		title : "",
		cursor : "pointer"
	});
	
});

/*----------funciones------------*/
function redondear(cantidad, decimales) {
	 var cantidad = parseFloat(cantidad);
	 var decimales = parseFloat(decimales);
	 decimales = (!decimales ? 2 : decimales);
	 return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
} 

function showDetalleLiquidacion() {
	//Utiles_MensajesDialogo.showRequestDialog2('Detalle de Distribucion', "jdDetalleDistribucion",agregaDetalleDistribucion,600);
	Utiles_MensajesDialogo.showRequestDialog('Detalle de Distribucion', "jdDetalleDistribucion", agregaDetalleDistribucion,400,150);
}

function eliminaItem(){
	var id = jQuery("#tabla_detalle_distribucion").jqGrid('getGridParam','selrow'); 
	if(id!=null){
		Utiles_MensajesDialogo.mensajeConfirmacion("Eliminar", "Desea realmente eliminar el item?", function(){
			jQuery("#tabla_detalle_distribucion").jqGrid('delRowData', id);
			jQuery("#tabla_detalle_distribucion").trigger("reloadGrid")	;
			$(this).dialog("close");
		});
	}
	else{
		alert("Seleccione un item!");
	}
}

function agregaDetalleDistribucion(){
 	if($("#frmDistribucion").valid()){
 			var asiento = $("#frmDistribucion").serializeObject();
 			
 			data= $('#tabla_detalle_distribucion').jqGrid('getGridParam','data');
			var x =0;
 			$.each(data, function(i) {				
				if(this.id_localidad==asiento.id_localidad){
					x =1;
					return;
				}
			});
			var distribucion = $("#distribucionVoucherForm").serializeObject();
 			if(x==0){
 				if((suma+parseFloat(asiento.importe))>parseFloat(distribucion.importe)){
 					Utiles_MensajesDialogo.showMensajeAlerta("El importe de distribucion excede al importe de la operacion");
 	 			}
 				else{
 					var n = (jQuery('#tabla_detalle_distribucion').jqGrid('getGridParam', 'records'));
 	 	 			asiento._id_=n+1;
 	 	 			asiento.correlativo=n+1;
 	 	 			asiento.nom_zona=$.trim($("#zona_distribucion option:selected").html());
 	 	 			asiento.nom_localidad=$.trim($("#localidad_distribucion option:selected").html());
 	 	 			
 	 	 			jQuery("#tabla_detalle_distribucion").jqGrid('addRowData', 0, asiento);
 	 	 			jQuery("#tabla_detalle_distribucion").trigger("reloadGrid");
 				}
 			}
 			else
 				Utiles_MensajesDialogo.showMensajeAlerta("La localidad seleccionada ya se encuentra agregada!");
 			
 	}
}

function llenarComboLocalidad() {
	var zona = $("#cmb_zona").val();
	$("#cmb_localidad").bindCombo("localidad_en_zona_comercial",{zona : zona},{id : "id_localidad",desc:"nom_localidad"});
}

function llenarComboCuenta() {
	var id_banco = $("#cmb_bancos").val();
	$("#cmb_cuentas").bindCombo("cuenta_en_banco",{id_banco : id_banco},{id : "id_cuenta_empresa",desc:"cuenta_bancaria"});
}

function enviaDistribucion() {	
	if ($("#distribucionVoucherForm").valid()) {
		var distribucion = $("#distribucionVoucherForm").serializeObject();
		if(suma==parseFloat(distribucion.importe)){
			Utiles_MensajesDialogo.mensajeConfirmacion("Agregar", "Esta seguro de realizar la operacion?", function(){
				var data = $("#tabla_detalle_distribucion").jqGrid('getGridParam','data');
				
				/*var distribucion = new Object();
				distribucion.fecha=$("#fec_emision").val();
				distribucion.id_zona= $("#cmb_zona").val();
				distribucion.id_localidad =$("#cmb_localidad").val();
				distribucion.num_operacion = $("#num_operacion").val();
				distribucion.importe = $("#importe_total").val();
				distribucion.id_cuenta_empresa = $("#cmb_cuentas").val();*/

				var obj = new Object();
				obj.detalle=data;
				distribucion.detalle =obj;
				Utiles_MensajesDialogo.showMensajeModal("Espere un momento!!");
				$.postJSON("guardar_distribucion_deposito",distribucion, function(rpta) {
					Utiles_MensajesDialogo.closeMensajeModal();
					if(rpta.operacion==true){
						Utiles_MensajesDialogo.showMensajeExito();
						limpiaFormulario();
					}
					else
						Utiles_MensajesDialogo.showMensajeError("error");
				});
	 			$(this).dialog("close");
	 		});	
		}
		else{
			Utiles_MensajesDialogo.showMensajeAlerta("El importe de operacion excede al importe de la distribucion");
		}
	}
}

function limpiaFormulario(){
		$("#liquidacionForm").reset();
		var rowIds = $('#tabla_liquidacion').jqGrid('getDataIDs');
		// iterate through the rows and delete each of them
		/*for(var i=0,len=rowIds.length;i<len;i++){
		    var currRow = rowIds[i];
		    $('#tabla_liquidacion').jqGrid('delRowData', currRow);
		} */
		$.each(rowIds, function(i,item) {
			$('#tabla_liquidacion').jqGrid('delRowData', item);
		});	
		jQuery("#tabla_liquidacion").trigger("reloadGrid");
}

/*----------fin funciones------------*/
